import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:getxdemo_2/pages/MovieListView.dart';
import 'package:getxdemo_2/pages/GetxUtilsExample.dart';

void main() {
  runApp(const MyApp());
}

// 在视图层展示列表数据
// 前面我们对网络请求、模型、数据处理进行了处理，我们最终的目的是需要把数据展示到页面上，那我们接着来看一下视图的代码
class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return GetMaterialApp(
      title: 'Getx2',
      getPages: [
        GetPage(name: '/', page:()=>MyApp()),
        GetPage(name: '/news', page:()=>MovieListView()),
        GetPage(name: '/getXUtils', page:()=>GetXUtilsExample()),
      ],
      home: Scaffold(
        appBar: AppBar(
          title: Text("GetX Title"),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.start,
            crossAxisAlignment: CrossAxisAlignment.stretch,
            children: [
              //该案例中最重要的通过继承自GetxController分离了UI和业务逻辑，并通过Get.put对控制器进行了实例化，然后使用Obx对数据进行了一个状态刷新。
              ElevatedButton(
                  onPressed: (){
                    Get.toNamed('/news');
                  },
                  child: Text("新闻列表")
              ),
              Padding(
                padding: EdgeInsets.all(40),
                child: ElevatedButton(
                    onPressed: (){
                      Get.toNamed('/getXUtils');
                    },
                    child: Text("getx工具")
                ),
              )

            ],
          ),
        ),
      ),
    );
  }
}
